<?php
	require_once('conf/top.php');
	$template = $tpl->loadTemplate('register.html');

	connectDb();
	session_start();

	$theme = theme(); // Gérer dans lib.
	$erreurs = array();
	$infos = array();

	function form_isValid(){
		$erreur = array();
		/*	test variable ins_mail	*/
		if(isset($_POST['ins_mail']) != false){	/* la variable existe mais n'est pas définie */
			if(empty($_POST['ins_mail'])){
				array_push($erreur,"Veuillez rentrer un mail");
			}
		}
		else if(isset($_POST['ins_mail']) == false){
			array_push($erreur,"La variable mail n'existe pas");	
		}
		/*	test variable ins_pwd	*/
		if(isset($_POST['ins_pwd']) != false){
			if(empty($_POST['ins_pwd'])){
				array_push($erreur,"Veuillez rentrer un mot de passe");
			}
		}
		else if(isset($_POST['ins_pwd']) == false){
			array_push($erreur,"La variable mot de passe n'existe pas");	
		}
		/*	test variable ins_check_pwd	*/
		if(isset($_POST['ins_check_pwd']) != false){
			if(empty($_POST['ins_check_pwd'])){
				array_push($erreur,"Veuillez rentrer un mot de passe de vérification");
			}
		}
		else if(isset($_POST['ins_check_pwd']) == false){
			array_push($erreur,"La variable mot de passe vérification n'existe pas");	
		}
		/*	test si ins_pwd == ins_check_pwd	*/
		if(isset($_POST['ins_check_pwd']) != false && isset($_POST['ins_pwd']) != false){
			if(!empty($_POST['ins_check_pwd']) && !empty($_POST['ins_pwd'])){
				if($_POST['ins_check_pwd'] != $_POST['ins_pwd']){
					array_push($erreur,"Vous n'avez pas rentré le même mot de passe");
				}
			}
		}
		return $erreur;
	}

	// Vérifie si il y a des erreurs dans le formulaire.
	$erreurs = null;
	if(!empty($_POST)){
		if(form_isValid()!= NULL){
			$erreurs = form_isValid();
		}
	}

	$states = null;

	/* Test variable POST formulaire inscription*/
	if(!empty($_POST['ins_mail']) && !empty($_POST['ins_pwd']) && !empty($_POST['ins_check_pwd']) && !empty($_POST['ins_firstname']) && !empty($_POST['ins_lastname']) && !empty($_POST['ins_birthday'])){
		if($_POST['ins_pwd'] == $_POST['ins_check_pwd']){
			// Sécurise les entrées POST
			//mail
			$_POST['ins_mail'] = htmlspecialchars(stripslashes($_POST['ins_mail']));
	        $_POST['ins_mail'] = str_ireplace("script", "blocked", $_POST['ins_mail']);
	        //pwd
	        $_POST['ins_pwd'] = htmlspecialchars(stripslashes($_POST['ins_pwd']));
	        $_POST['ins_pwd'] = str_ireplace("script", "blocked", $_POST['ins_pwd']);
	        //check pwd
	        $_POST['ins_check_pwd'] = htmlspecialchars(stripslashes($_POST['ins_check_pwd']));
	        $_POST['ins_check_pwd'] = str_ireplace("script", "blocked", $_POST['ins_check_pwd']);
	        //firstname
	        $_POST['ins_firstname'] = htmlspecialchars(stripslashes($_POST['ins_firstname']));
	        $_POST['ins_firstname'] = str_ireplace("script", "blocked", $_POST['ins_firstname']);
	        //lastname
	        $_POST['ins_lastname'] = htmlspecialchars(stripslashes($_POST['ins_lastname']));
	        $_POST['ins_lastname'] = str_ireplace("script", "blocked", $_POST['ins_lastname']);
	        //birthday
	        $_POST['ins_birthday'] = htmlspecialchars(stripslashes($_POST['ins_birthday']));
	        $_POST['ins_birthday'] = str_ireplace("script", "blocked", $_POST['ins_birthday']);

			$exist = getUserByMail($_POST['ins_mail']);
			if(empty($exist)){ // Vérifie que l'adresse mail n'existe pas déjà.
				// Random Key
				$key = md5(uniqid(rand()));
				// Insert User
				$result = insertUser($_POST['ins_mail'] ,$_POST['ins_pwd'], $_POST['ins_firstname'], $_POST['ins_lastname'], $_POST['ins_birthday'], $key);
				// Envoie du mail de confirmation
				if($result){
					$to=$_POST['ins_mail'];
					$subject="Confirmation inscription TimeShop";
					// From
					$header="from: TimeShop";
					$message="Pour confirmer votre inscription et activer votre compte,\r\n";
					$message.="veuillez cliquer sur le lien ci dessous :\r\n\r\n";
					$message.= "http://".$_SERVER['SERVER_NAME']."/confirmation.php?key=$key \r\n\r\n";
					$message.="TimeShop vous remercie et espère que vous ferez bonne usage du temps.\r\n";
					$sentmail = mail($to,$subject,$message,$header);
				}
				else {
					$erreurs[] = "Une erreur est survenue, veuillez recommencer ou contacter l'équipe technique de TimeShop.";
					header('Refresh: 10; url=register.php');
				}

				if($sentmail){
					$infos[] = "Un lien de confirmation a été envoyé à votre adresse mail.";
					header('Refresh: 8; url=index.php');
				}
				else {
					$erreurs[] = "Une erreur s'est produite lors de l'envoi du lien de confirmation sur votre mail.";
					header('Refresh: 8; url=register.php');
				}
			}
			else {
				$erreurs[] = "Cette adresse mail semble être déjà prise.";
				header('Refresh: 10; url=register.php');
			}
		}
	}

	/* On envoie le necessaire à notre template */
	echo $template->render(array('MEDIA_PATH' => MEDIA_PATH, 'erreurs' => $erreurs, 'infos' => $infos, 'theme' => $theme));